var t = require("@babel/runtime/helpers/typeof"), r = "function" == typeof Symbol && "symbol" == t(Symbol.iterator) ? function(r) {
    return t(r);
} : function(r) {
    return r && "function" == typeof Symbol && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : t(r);
}, e = function(t) {
    var e, n = Object.prototype, o = n.hasOwnProperty, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag";
    function h(t, r, e) {
        return Object.defineProperty(t, r, {
            value: e,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }), t[r];
    }
    try {
        h({}, "");
    } catch (n) {
        n = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(n);
        h = function(t, r, e) {
            return t[r] = e;
        };
    }
    function l(t, r, n, o) {
        var i, a, c, u;
        r = r && r.prototype instanceof v ? r : v, r = Object.create(r.prototype), o = new O(o || []);
        return r._invoke = (i = t, a = n, c = o, u = s, function(t, r) {
            if (u === y) throw new Error("Generator is already running");
            if (u === d) {
                if ("throw" === t) throw r;
                return k();
            }
            for (c.method = t, c.arg = r; ;) {
                var n = c.delegate;
                if (n) {
                    var o = function t(r, n) {
                        var o;
                        if ((o = r.iterator[n.method]) === e) {
                            if (n.delegate = null, "throw" === n.method) {
                                if (r.iterator.return && (n.method = "return", n.arg = e, t(r, n), "throw" === n.method)) return g;
                                n.method = "throw", n.arg = new TypeError("The iterator does not provide a 'throw' method");
                            }
                            return g;
                        }
                        return "throw" === (o = f(o, r.iterator, n.arg)).type ? (n.method = "throw", n.arg = o.arg, 
                        n.delegate = null, g) : (o = o.arg) ? o.done ? (n[r.resultName] = o.value, n.next = r.nextLoc, 
                        "return" !== n.method && (n.method = "next", n.arg = e), n.delegate = null, g) : o : (n.method = "throw", 
                        n.arg = new TypeError("iterator result is not an object"), n.delegate = null, g);
                    }(n, c);
                    if (o) {
                        if (o === g) continue;
                        return o;
                    }
                }
                if ("next" === c.method) c.sent = c._sent = c.arg; else if ("throw" === c.method) {
                    if (u === s) throw u = d, c.arg;
                    c.dispatchException(c.arg);
                } else "return" === c.method && c.abrupt("return", c.arg);
                if (u = y, "normal" === (o = f(i, a, c)).type) {
                    if (u = c.done ? d : p, o.arg !== g) return {
                        value: o.arg,
                        done: c.done
                    };
                } else "throw" === o.type && (u = d, c.method = "throw", c.arg = o.arg);
            }
        }), r;
    }
    function f(t, r, e) {
        try {
            return {
                type: "normal",
                arg: t.call(r, e)
            };
        } catch (t) {
            t = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(t);
            return {
                type: "throw",
                arg: t
            };
        }
    }
    t.wrap = l;
    var s = "suspendedStart", p = "suspendedYield", y = "executing", d = "completed", g = {};
    function v() {}
    function m() {}
    function w() {}
    var b = {};
    h(b, a, function() {
        return this;
    }), (i = (i = Object.getPrototypeOf) && i(i(S([])))) && i !== n && o.call(i, a) && (b = i);
    var L = w.prototype = v.prototype = Object.create(b);
    function x(t) {
        [ "next", "throw", "return" ].forEach(function(r) {
            h(t, r, function(t) {
                return this._invoke(r, t);
            });
        });
    }
    function E(t, e) {
        var n;
        this._invoke = function(i, a) {
            function c() {
                return new e(function(n, c) {
                    !function n(i, a, c, u) {
                        if ("throw" !== (i = f(t[i], t, a)).type) {
                            var h = i.arg;
                            return (a = h.value) && "object" === (void 0 === a ? "undefined" : r(a)) && o.call(a, "__await") ? e.resolve(a.__await).then(function(t) {
                                n("next", t, c, u);
                            }, function(t) {
                                n("throw", t, c, u);
                            }) : e.resolve(a).then(function(t) {
                                h.value = t, c(h);
                            }, function(t) {
                                return n("throw", t, c, u);
                            });
                        }
                        u(i.arg);
                    }(i, a, n, c);
                });
            }
            return n = n ? n.then(c, c) : c();
        };
    }
    function _(t) {
        var r = {
            tryLoc: t[0]
        };
        1 in t && (r.catchLoc = t[1]), 2 in t && (r.finallyLoc = t[2], r.afterLoc = t[3]), 
        this.tryEntries.push(r);
    }
    function j(t) {
        var r = t.completion || {};
        r.type = "normal", delete r.arg, t.completion = r;
    }
    function O(t) {
        this.tryEntries = [ {
            tryLoc: "root"
        } ], t.forEach(_, this), this.reset(!0);
    }
    function S(t) {
        if (t) {
            if (r = t[a]) return r.call(t);
            if ("function" == typeof t.next) return t;
            if (!isNaN(t.length)) {
                var r, n = -1;
                return (r = function r() {
                    for (;++n < t.length; ) if (o.call(t, n)) return r.value = t[n], r.done = !1, r;
                    return r.value = e, r.done = !0, r;
                }).next = r;
            }
        }
        return {
            next: k
        };
    }
    function k() {
        return {
            value: e,
            done: !0
        };
    }
    return h(L, "constructor", m.prototype = w), h(w, "constructor", m), m.displayName = h(w, u, "GeneratorFunction"), 
    t.isGeneratorFunction = function(t) {
        return !!(t = "function" == typeof t && t.constructor) && (t === m || "GeneratorFunction" === (t.displayName || t.name));
    }, t.mark = function(t) {
        return Object.setPrototypeOf ? Object.setPrototypeOf(t, w) : (t.__proto__ = w, h(t, u, "GeneratorFunction")), 
        t.prototype = Object.create(L), t;
    }, t.awrap = function(t) {
        return {
            __await: t
        };
    }, x(E.prototype), h(E.prototype, c, function() {
        return this;
    }), t.AsyncIterator = E, t.async = function(r, e, n, o, i) {
        void 0 === i && (i = Promise);
        var a = new E(l(r, e, n, o), i);
        return t.isGeneratorFunction(e) ? a : a.next().then(function(t) {
            return t.done ? t.value : a.next();
        });
    }, x(L), h(L, u, "Generator"), h(L, a, function() {
        return this;
    }), h(L, "toString", function() {
        return "[object Generator]";
    }), t.keys = function(t) {
        var r, e = [];
        for (r in t) e.push(r);
        return e.reverse(), function r() {
            for (;e.length; ) {
                var n = e.pop();
                if (n in t) return r.value = n, r.done = !1, r;
            }
            return r.done = !0, r;
        };
    }, t.values = S, O.prototype = {
        constructor: O,
        reset: function(t) {
            if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, 
            this.method = "next", this.arg = e, this.tryEntries.forEach(j), !t) for (var r in this) "t" === r.charAt(0) && o.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = e);
        },
        stop: function() {
            this.done = !0;
            var t = this.tryEntries[0].completion;
            if ("throw" === t.type) throw t.arg;
            return this.rval;
        },
        dispatchException: function(t) {
            if (this.done) throw t;
            var r = this;
            function n(n, o) {
                return c.type = "throw", c.arg = t, r.next = n, o && (r.method = "next", r.arg = e), 
                !!o;
            }
            for (var i = this.tryEntries.length - 1; 0 <= i; --i) {
                var a = this.tryEntries[i], c = a.completion;
                if ("root" === a.tryLoc) return n("end");
                if (a.tryLoc <= this.prev) {
                    var u = o.call(a, "catchLoc"), h = o.call(a, "finallyLoc");
                    if (u && h) {
                        if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
                        if (this.prev < a.finallyLoc) return n(a.finallyLoc);
                    } else if (u) {
                        if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
                    } else {
                        if (!h) throw new Error("try statement without catch or finally");
                        if (this.prev < a.finallyLoc) return n(a.finallyLoc);
                    }
                }
            }
        },
        abrupt: function(t, r) {
            for (var e = this.tryEntries.length - 1; 0 <= e; --e) {
                var n = this.tryEntries[e];
                if (n.tryLoc <= this.prev && o.call(n, "finallyLoc") && this.prev < n.finallyLoc) {
                    var i = n;
                    break;
                }
            }
            i && ("break" === t || "continue" === t) && i.tryLoc <= r && r <= i.finallyLoc && (i = null);
            var a = i ? i.completion : {};
            return a.type = t, a.arg = r, i ? (this.method = "next", this.next = i.finallyLoc, 
            g) : this.complete(a);
        },
        complete: function(t, r) {
            if ("throw" === t.type) throw t.arg;
            return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, 
            this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), 
            g;
        },
        finish: function(t) {
            for (var r = this.tryEntries.length - 1; 0 <= r; --r) {
                var e = this.tryEntries[r];
                if (e.finallyLoc === t) return this.complete(e.completion, e.afterLoc), j(e), g;
            }
        },
        catch: function(t) {
            for (var r = this.tryEntries.length - 1; 0 <= r; --r) {
                var e = this.tryEntries[r];
                if (e.tryLoc === t) {
                    var n, o = e.completion;
                    return "throw" === o.type && (n = o.arg, j(e)), n;
                }
            }
            throw new Error("illegal catch attempt");
        },
        delegateYield: function(t, r, n) {
            return this.delegate = {
                iterator: S(t),
                resultName: r,
                nextLoc: n
            }, "next" === this.method && (this.arg = e), g;
        }
    }, t;
}("object" === ("undefined" == typeof module ? "undefined" : r(module)) ? module.exports : {});

try {
    regeneratorRuntime = e;
} catch (t) {
    t = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(t);
    "object" === ("undefined" == typeof globalThis ? "undefined" : r(globalThis)) ? globalThis.regeneratorRuntime = e : Function("r", "regeneratorRuntime = r")(e);
}